Currently, Structured Query Language (“SQL”) clients are very synchronous in their connections. A client connected to a SQL server is only allowed one outstanding transaction or request from the SQL server at any given time. This can result in poor performance for the SQL client, because the client can be forced to wait for the SQL server to finish work on a larger transaction before submitting smaller transactions. This also results in a waste of resources, as any given client server connection may be underutilized resulting in wasted bandwidth.
One solution to this problem has been to open multiple simultaneous connections between the SQL client and the SQL server. However, this solution creates its own problems. For example, transaction latencies are increased due to time spent in the prelogin and login phases. There is also significant waste of resources associated with opening the new connection. These problems are further exacerbated when the transactions are small or short lived, because the cost of setting up and tearing down the connections can be greater than the benefits. In addition, this solution does not solve the problem of wasted bandwidth; each of the multiple connections is still not operating at its maximum capacity.
FIG. 1 is a block diagram of a prior art system. A client 101 is physically connected to a server 130 through connection 111. As discussed previously, SQL clients are limited to one outstanding transaction or request from the SQL server at any given time. This can cause difficulties because the client 101 may be forced to wait for the server 130 to complete a larger transaction before submitting a smaller transaction.
The prior art solution to this problem is illustrated at connection 113. The client 101 opens a second physical connection 113, allowing it to send additional transaction requests through connection 113 while it waits for the transaction over connection 111 to complete. However, this does not solve the problem of wasted bandwidth. Connection 111 is still being underutilized, possibly resulting in the server 130 refusing connections from other clients.
In view of the foregoing, there is a need for systems and methods that overcome the limitations and drawbacks of the prior art.